/*******************************************************************
Boundaries is the class maintain the upper boundary and the lower boundary of a 
model parameter in the NUCU model.
Boundaries consists of two variables.
One variable holds the value of the upper boundary.
The other holds the lower boundary.
Author: Chun-Ming Wang
Date of Modification: 14/06/2006 (dd/mm/yyyy)
*******************************************************************/
#pragma once
#ifndef _Boundaries
#define _Boundaries
//#include "SingleVariable.h"
#include "Misc.h"
class Boundaries
{
public:
	// constructors
	Boundaries();
	Boundaries(const double &lower, const double &upper);
	// copy constructor
	Boundaries(const Boundaries &rhs);
	// assignment operator
	Boundaries& operator=(const Boundaries &rhs);
	// destructors
	virtual ~Boundaries();
	// access function
	void upperBound(const double &upper);
	void lowerBound(const double &lower);
	const double& upperBound() const;
	const double& lowerBound() const;
	virtual Boundaries* clone() const;
private:
	double m_dupperBound, m_dlowerBound;
	// check duplicate assignment through the operator =
	void check_assign(const Boundaries& rhs);
};
#endif